The present invention relates generally to bus integrity, and more particularly to a method and apparatus of testing a peripheral bus for data transfer integrity.
Today's standard computer architectures call for a number of peripheral devices such as disk drives, RAID devices, CD-ROM drives, modems, monitors, keyboards, printers, scanners, etc. to be operatively coupled to a computer system by peripheral buses. Peripheral buses are simply groups of conductors (or lines) designed to carry data and control signals to and from peripheral devices.
One such peripheral bus is the small computer systems interface ("SCSI") bus. The SCSI bus is designed to operate in conjunction with a computer system to provide an interface to SCSI standard peripheral devices. There are currently several different SCSI bus standards. Each of these different SCSI bus standards supports various different transfer rates or operating modes such as Asynchronous, Fast, Fast20 (Ultra), and Fast40 (Ultra II). Furthermore, each of these different SCSI bus standards have different cabling specifications, configuration specifications, and signaling modes such as single ended, high voltage differential, and/or low voltage differential signaling modes.
Due to the faster transfer rates, the cabling and configuration specifications for the Fast20 and the Fast40 versions of the SCSI specification requirements are much tighter than those previously required by the slower versions of SCSI. As a result, the Fast20 and Fast40 versions of SCSI have various requirements that are critical to optimal performance and reliable operation to which the slower SCSI bus standards need not adhere. These critical SCSI bus requirements include limits on the impedance of the cable components, the total cable length, the number of devices connected to the bus, maximum stub length, and the minimum distance between devices on the bus. Even a relatively minor violation to the Fast20 and Fast40 SCSI standards can result in degraded performance and unreliable data transfers.
Since users may not appreciate the strictness of these cabling and configuration requirements, a user is quite likely to violate one of these requirements. This likelihood is especially true since SCSI devices that support different SCSI bus standards may be coupled to a single SCSI bus. As a result, a user may add a faster SCSI device to an existing SCSI device chain of slower devices without determining whether the existing SCSI device chain meets the requirements of the faster SCSI bus standard. The existing SCSI chain may be configured for reliable transfers at the slower rate; however, at the faster rate, transfer errors may occur frequently enough that the reliability of data transfers at the faster rate are suspect.
If the user knew that transfer errors were occurring, the user could check or be informed to check the SCSI bus for cabling and configuration compliance. Furthermore, if it could be determined whether transfer errors were occurring at a first transfer rate and not at a second transfer rate, the user or computer system could prevent data transfers from occurring at the second transfer rate. What is needed therefore, is a method and apparatus of testing whether a peripheral bus of a computer system is configured for reliable transfers so that the above remedial measures may be taken.